import { globalIgnores } from 'eslint/config'
import {
  defineConfigWithVueTs,
  vueTsConfigs
} from '@vue/eslint-config-typescript'
import pluginVue from 'eslint-plugin-vue'
// import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
import pluginPrettier from 'eslint-plugin-prettier'

export default defineConfigWithVueTs(
  {
    name: 'app/files-to-lint',
    files: ['**/*.{ts,mts,tsx,vue}']
  },

  globalIgnores(['**/dist/**', '**/dist-ssr/**', '**/coverage/**']),

  pluginVue.configs['flat/essential'],
  vueTsConfigs.recommended,
  // skipFormatting,

  // 添加 prettier 插件和规则
  {
    // 在这里添加 globals 配置
    languageOptions: {
      globals: {
        console: 'readonly'
      }
    },
    plugins: {
      prettier: pluginPrettier
    },
    rules: {
      'prettier/prettier': [
        'warn'
        /**
         * Prettier代码格式化配置对象
         *
         * 该配置对象定义了代码格式化的规则，用于统一代码风格
         * 配置项包括引号类型、分号使用、行宽限制、尾随逗号和换行符处理等
         */
        // {
        //   singleQuote: true,
        //   semi: false,
        //   printWidth: 80,
        //   trailingComma: 'none',
        //   endOfLine: 'auto'

        // }
        //继承prettier规则
      ],
      // 组件名必须多单词忽略index
      'vue/multi-word-component-names': [
        'warn',
        {
          ignores: ['index']
        }
      ],
      //让vue文件props可以解构
      'vue/no-setup-props-destructure': 'off',
      'no-undef': 'error'
    }
  }
)
